home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / system / ffg202.zip / FFG.DOC < prev    next >
Text File  |  1995-04-17  |  87KB  |  2,483 lines

  1.      ──────────────────────────────────────────────────────────────────────
  2.                            FFG: File Finder/Grouper
  3.         (c) 1992-1995 Thomas G. Vavoso, EnGamma - All Rights Reserved
  4.      ──────────────────────────────────────────────────────────────────────
  5.  
  6.                            ┌─────────┐
  7.                      ┌─────┴───┐     │               (R)
  8.                    ──│         │o    │──────────────────
  9.                      │   ┌─────┴╨──┐ │  Association of
  10.                      │   │         │─┘  Shareware
  11.                      └───│    o    │    Professionals
  12.                    ──────│    ║    │────────────────────
  13.                          └────╨────┘    MEMBER
  14.  
  15.  
  16.                             File Finder/Grouper (FFG)
  17.                                  Version 2.02
  18.                                Shareware Manual
  19.  
  20.                       Copyright 1992-1995 Thomas G. Vavoso
  21.                               President, EnGamma
  22.                              All Rights Reserved
  23.                    Member Association of Shareware Professionals
  24.  
  25.                             2407 Cameron Mills Rd.
  26.                           Alexandria, Va. 22302-3302
  27.  
  28.                            Telephone (703)548-6869
  29.                            Compuserve: 71674,1747
  30.                      Internet: 71674.1747@compuserve.com
  31.  
  32.  
  33.           File Finder/Grouper (FFG) performs three basic functions:
  34.  
  35.             1)  Searches disks/archive files for files based on
  36.                 flexible user-specified search criteria (e.g., name,
  37.                 date/time/size/Day-of-week ranges, text contents,
  38.                 attributes...)
  39.             2)  Groups files for processing
  40.             3)  Groups files for building databases of files
  41.  
  42.           If you think you already have a utility program that fills
  43.           these functions, try the DEMO programs, examine the
  44.           EXAMPLES.FFG file, and read the section "FFG Compared to
  45.           Other File Finders", before you decide to put FFG aside.
  46.  
  47.           If you want to start using FFG right away read the "Quick
  48.           Start" section below.  Otherwise, skip to "Introduction".
  49.  
  50.           Be sure to read the "Shareware" notice on the next page.
  51.           The registration cost for a single-user license and two
  52.           years of updates is currently $15 plus a small shipping
  53.           and processing fee for updates.  See the FFG.REG file
  54.           for details.  You can also register on-line via CompuServe
  55.           (GO SWREG, ID#1558).
  56.  
  57.           This manual is available in WordPerfect 5.1/5.2 format to
  58.           registered users upon request.
  59.  
  60.           File Finder/Grouper           1                  (c) EnGamma
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                                     Shareware
  69.  
  70.                Shareware distribution gives users a chance to try
  71.           software before buying it.  If you try a shareware program
  72.           and continue using it, you are expected to register.
  73.           Individual programs differ on details -- some request
  74.           registration while others require it, some specify a maximum
  75.           trial period.  With registration, you get anything from the
  76.           simple right to continue using the software to an updated
  77.           program with printed manual.
  78.  
  79.                Copyright laws apply to both shareware and commercial
  80.           software, and the copyright holder retains all rights, with
  81.           a few specific exceptions as stated below.  Shareware
  82.           authors are accomplished programmers, just like commercial
  83.           authors, and the programs are of comparable quality.  (In
  84.           both cases, there are good programs and bad ones!)  The main
  85.           difference is in the method of distribution.  The author
  86.           specifically grants the right to copy and distribute the
  87.           software, either to all and sundry or to a specific group.
  88.           For example, some authors require written permission before
  89.           a commercial disk vendor may copy their shareware.
  90.  
  91.                Shareware is a distribution method, not a type of
  92.           software.  You should find software that suits your needs
  93.           and pocketbook, whether it's commercial or shareware.  The
  94.           shareware system makes fitting your needs easier, because
  95.           you can try before you buy.  And because the overhead is
  96.           low, prices are low also.  Shareware has the ultimate
  97.           money-back guarantee -- if you don't use the product, you
  98.           don't pay for it.
  99.  
  100.                FFG is a copyrighted shareware program by Thomas G.
  101.           Vavoso, President, EnGamma.  The evaluation edition of FFG
  102.           is offered at no charge to any potential user for
  103.           evaluation, but after a brief evaluation period users must
  104.           register and pay for it.  Feel free to share the evaluation
  105.           edition with your friends and associates, but please do not
  106.           give it away altered or as part of another system.  The
  107.           essence of "user-supported" software is to provide personal
  108.           computer users with quality software without high prices,
  109.           and yet to provide incentive for programmers to continue to
  110.           develop new products.
  111.  
  112.                              Disclaimer of Warranty
  113.  
  114.           Users of FFG must accept this disclaimer of warranty:  FFG
  115.           is supplied as-is.  The author disclaims all warranties,
  116.           expressed or implied, including, without limitation, the
  117.           warranties of merchantability and of fitness for any
  118.  
  119.           File Finder/Grouper           2                  (c) EnGamma
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.           purpose.  The author assumes no liability for damages,
  128.           direct or consequential, which may result from use of FFG.
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.           File Finder/Grouper           3                  (c) EnGamma
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.                                    Quick Start
  187.  
  188.           1.  Demonstrations - The quickest way to become familiar
  189.           with FFG or to get ideas for possible uses is run the DEMO
  190.           program (DEMO.BAT).  Go to the disk and directory with the
  191.           demo batch files in it and enter:
  192.  
  193.               demo
  194.  
  195.           2.  Examples - See the file "EXAMPLES.FFG" included in the
  196.           FFG package for a concise listing of many examples.
  197.  
  198.           3.  Usage Ideas - See the file "USEIDEAS.FFG" included in
  199.           the FFG package for ideas on how FFG can be used and for
  200.           answers to frequently asked questions.
  201.  
  202.           4.  Command Syntax
  203.  
  204.           USAGE: FFG [DriveSpec:][PathSpec]NameMask[,NameMask2...][\] [options]
  205.  
  206.           As usual, the items in brackets [] are optional.
  207.  
  208.           "NameMask" can contain one or more extended DOS wild card
  209.           characters to specify the file name:"
  210.  
  211.                        * = matches any string of zero or more
  212.           characters"
  213.                        ? = matches any one character
  214.  
  215.           "DriveSpec" can be a simple drive letter or more:
  216.             - If a '*' is substituted for a drive letter, all but A:
  217.               & B: are searched.  Redundant logical aliases of the
  218.               same physical drive (e.g., substitute drives) are
  219.               skipped to avoid multiple reports of the same physical
  220.               file.
  221.             - Multiple drives can be explicitly specified (e.g., A-
  222.               D:, BDF:).
  223.             - Drives listed after the '*' are excluded (e.g., *M:
  224.               searches all but M:).
  225.             - The above can be combined (e.g., AB*G-IZ: searches A:
  226.               and B: first, then all non-redundant drives but G:
  227.               through I: and Z:
  228.             - No drive or ':' alone is taken to mean the current
  229.               drive
  230.  
  231.           - To search for directories instead of files, put a '\'
  232.             after the NameMask
  233.  
  234.  
  235.  
  236.  
  237.           File Finder/Grouper           4                  (c) EnGamma
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.           - During the search, pressing the following keys have
  246.             special effects:
  247.  
  248.               <ESC> will stop the search.
  249.               <G> will go to (Change Dir) the last found file.
  250.               <S> will skip the current drive.
  251.               <B> will cause FFG to beep when done searching.
  252.               <UP>,<DOWN>,<RIGHT> arrow keys can guide the search
  253.               Pressing any other key will pause the search operation.
  254.  
  255.           - Either '-' or '/' are acceptable command line option
  256.             switches.
  257.           - Options may be in any order, before or after the Search
  258.             Mask.
  259.           - There should be no spaces between option switches and
  260.             their parameters.
  261.  
  262.           5.  Built-in Help/Examples - To get a listing of options and
  263.           command syntax, at the DOS prompt enter:
  264.  
  265.              ffg        -      Prompts for parameters/options (/? for
  266.                               help)
  267.             ffg /?     -      Usage, help, examples, options
  268.              ffg /??
  269.                        -      Individual command-line option help menu
  270.              ffg /?n
  271.                        -      Help for option 'n'; (e.g., /?d is help
  272.                               for date option)
  273.  
  274.           6.  Finding a File on the Current Drive - To find a file
  275.           anywhere on the current drive enter:
  276.  
  277.              FFG filename.ext
  278.  
  279.  
  280.             where "filename.ext" is the name of the file you want to
  281.             find.
  282.  
  283.           7.  Finding a File on All Hard Drives - To find a file
  284.           anywhere on hard drives connected to your system enter:
  285.  
  286.              FFG *:filename.ext
  287.  
  288.  
  289.             where the '*' is interpreted to mean all non-redundant
  290.             disk drives except A: and B:, which are assumed to be
  291.             floppy drives.  A redundant drive is one that is an alias
  292.             for some directory subtree of another physical drive.
  293.  
  294.           8.  Finding a File on All Drives (including floppies) - To
  295.           find a file anywhere on the system drives enter:
  296.  
  297.              ffg ab*:filename.ext
  298.  
  299.  
  300.  
  301.           File Finder/Grouper           5                  (c) EnGamma
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.             where "ab*:" is interpreted to mean search drives A: and
  310.             B: plus all hard drives.
  311.  
  312.           9.  Searching Inside Archive Files (e.g., .ZIP files) - To
  313.           search all drives and inside all archive files on those
  314.           drives type:
  315.  
  316.              ffg  *:filename.ext /z
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.           File Finder/Grouper           6                  (c) EnGamma
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.                                   Introduction
  370.  
  371.           To get a quick idea of FFG's capabilities run the batch
  372.           files included in DEMOBAT.ZIP or scan through the examples
  373.           in EXAMPLES.FFG.
  374.  
  375.           Here is a basic list of features:
  376.  
  377.           - Perform filename searches using extended DOS wild card
  378.             characters * and ?.  For example you can find all files
  379.             with "doc" anywhere in the name.  This search is not
  380.             possible using standard DOS wildcard conventions.
  381.  
  382.           - Easily search all disk drives or only selected drives.
  383.  
  384.           - Search for files or exclude files based on file name,
  385.             date, time, size, day-of-week, attributes
  386.             (hidden/system/read only/archive), and occurrence of text
  387.             (including control codes) within the file.
  388.  
  389.           - Searches popular archive/compressed file formats such as
  390.             those created with PKZip.
  391.  
  392.           - Can execute an arbitrary DOS command for each found file.
  393.  
  394.           - Versatile and Customizable Output Formats:
  395.  
  396.              -  Standard columnar output, which is a basic fixed
  397.                 field output of the various file information items:
  398.  
  399.               FILENAME.EXT 12345  1/01/92 23:59 HSRA C:\DIRECT\SUBDIR
  400.  
  401.              -  Packed format, which allows formation of list files
  402.                 for subsequent processing (e.g., PKZip @file):
  403.  
  404.               C:\DIRECT\SUBDIR\FILENAME.EXT
  405.  
  406.              -  Comma delimited ASCII database file format, which
  407.                 allows building databases of found files:
  408.  
  409.           "FILENAME.EXT","12345","1/01/92","23:59:00","HSRA","C:\DIRECT\SUBDIR\"
  410.  
  411.              -  Batch file processing format, which allows
  412.                 sophisticated manipulation of found files as a group:
  413.  
  414.               %1 C:\PATH\FILENAME.EXT %2 %3 %4 %5 %6 %7 %8 %9
  415.  
  416.             Within each of the above basic format types the user can
  417.             further customize the output.  (See the detailed
  418.             reference for the /f option.)
  419.  
  420.           File Finder/Grouper           7                  (c) EnGamma
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.           - See the section "FFG Compared to Other File Finders".
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.           File Finder/Grouper           8                  (c) EnGamma
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.                        FFG Compared to Other File Finders
  488.  
  489.           File Finder/Grouper (FFG) performs functions similar to
  490.           those found in other utility programs, but here are some FFG
  491.           features that some other file finders lack:
  492.  
  493.           1.  FFG uses the DOS wildcard characters '*' and '?' but
  494.               they have extended function over the DOS counterparts.
  495.               The extended functionality permits you to search for
  496.               strings of characters that appear anywhere in the file
  497.               name.
  498.  
  499.           2.  FFG can search for multiple file specifications in a
  500.               single pass, such as find all BAT, COM and EXE files.
  501.  
  502.           3.  FFG permits you to concisely specify multiple file name
  503.               search masks such as:
  504.               "*[ZIP,ARC,ARJ,LHA,ZOO]*.[COM,EXE]"
  505.               to find all archiving programs.
  506.  
  507.           4.  FFG can search all disk drives or selected disk drives.
  508.  
  509.           5.  FFG can search inside of archive files (ZIP, ARC, ARJ,
  510.               LZH, ZOO).  FFG will also search inside PKZip, ARJ, and
  511.               LHA self-extracting (.EXE) archive files.  (FFG also
  512.               searches inside XEQ COM library files).
  513.  
  514.           6.  FFG can execute and arbitrary DOS command for each file
  515.               found with or without a user confirmation before
  516.               execution.
  517.  
  518.           7.  FFG finds hidden files and searches hidden directories.
  519.  
  520.           8.  FFG searches inside directories with name extensions
  521.               (e.g., THISISMY.DIR).  Some file finders do not search
  522.               these directories.
  523.  
  524.           9.  FFG can move to the disk and directory of the found
  525.               file (/g option).
  526.  
  527.           10. FFG can search for directories instead of files simply
  528.               by appending a backslash '\' to the search name.
  529.  
  530.           11. FFG can search by a date range, time range, size range,
  531.               or day-of-week range using intuitive syntax to specify
  532.               these filtering criteria.  Multiple include/exclude
  533.               ranges can be specified.
  534.  
  535.           12. FFG can search by the file attributes or combination of
  536.               attributes, such as finding all Hidden Read-Only files.
  537.  
  538.           File Finder/Grouper           9                  (c) EnGamma
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.           13. FFG can find files based on the day of the week (i.e.,
  547.               Sun - Sat) they were modified/created.
  548.  
  549.           14. FFG can find files based on whether or not the file
  550.               contains one or more text/ASCII-code strings.  FFG will
  551.               even search for text inside files that are archived if
  552.               you have the associated archive extraction program
  553.               (e.g., PKUnzip, LHA, ARJ, etc.) on your DOS search
  554.               path.
  555.  
  556.           15. FFG permits you to exclude certain files base on name,
  557.               date, time, size, attributes, day-of-week criteria,
  558.               text contents.
  559.  
  560.           16. FFG can search for files by date relative to today,
  561.               such as all files modified/created 7 to 14 days ago.
  562.  
  563.           17. FFG can search for files relative to the current time
  564.               of day, such as all files modified/created within the
  565.               last ten minutes.
  566.  
  567.           18. The asterisk '*' can be used as a wildcard in date and
  568.               time criteria, such as /d9/*/93 for all September 1993
  569.               files and /t13:* for all 1:00pm - 1:59pm files.
  570.  
  571.           19. Current month (M), day (D), year (Y) can be specified
  572.               in date criteria such as 1/1/Y-6/30/Y, M/D/Y (today)
  573.  
  574.           20. Current hours (H), minutes (M), seconds (S) can be
  575.               specified in time criteria such as H:M:S (now).
  576.  
  577.           21. Partial dates and times are interpreted, such as 9/93 -
  578.               > 9/*/93, 5/1 -> 5/1/Y (Y = current year), 92-93 -> all
  579.               1992-1993 files, 9 -> 9:00:00am.
  580.  
  581.           22. Multiple date, time, size, day-of-week, attribute, text
  582.               filtering criteria can be specified, which are combined
  583.               in a logical AND or OR depending on how they are
  584.               specified.
  585.  
  586.           23. FFG lets you pause (press any key) or interrupt (press
  587.               <ESC>) the search operation at any time.
  588.  
  589.           24. FFG lets you guide the search by using the arrow keys
  590.               to skip files and directories.
  591.  
  592.           25. FFG can be used to produce database files of its output
  593.               (ASCII comma-delimited files)(/f, option)
  594.  
  595.           26. FFG provides useful default output format options but
  596.  
  597.           File Finder/Grouper          10                  (c) EnGamma
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.               permits extensive user customization of the output
  606.               format.
  607.  
  608.           27. FFG can be used to produce output as DOS batch files
  609.               (.BAT) with DOS replaceable parameters (%1 through %9).
  610.               The batch file can then be used to execute an arbitrary
  611.               set of commands against the group of files such as
  612.               copy, back up, archive, delete, move, edit...).  The
  613.               power and flexibility of this feature is limited only
  614.               by your imagination.  Although some other finders have
  615.               similar capability, they do not have the same
  616.               flexibility.
  617.  
  618.           28. By default, when FFG is searching all disk drives
  619.               (i.e., *: is specified), it skips disk drives that are
  620.               logical aliases of subtrees of physical drives that
  621.               will also be searched.  This avoids reports of multiple
  622.               copies of the same physical file when it appears also
  623.               on logical alias drives.
  624.  
  625.           29. FFG lets you use 43- and 50-line video modes on EGA/VGA
  626.               systems so you can see more on the screen.
  627.  
  628.           30. Frequently used options can be made semi-permanent by
  629.               setting them in the DOS environment variable FFGOPT
  630.               using the DOS 'set' command as in: SET FFGOPT=/p /v5 /z
  631.               /bpd /fp
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.           File Finder/Grouper          11                  (c) EnGamma
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.                                Usage and Examples
  665.  
  666.              FFG [DriveSpec:][PathSpec]NameMask[,NameMask2...][\] [options]
  667.  
  668.           FFG is currently not case sensitive.  However, as features
  669.           are added in future releases case may be used to distinguish
  670.           options.  Therefore, use of lower case is recommended.  In
  671.           many of the examples provided in this manual mixed upper and
  672.           lower case is used for clarity only.
  673.  
  674.           If there is not at least one NameMask, FFG will prompt you
  675.           for input parameters.
  676.  
  677.           DriveSpec tells FFG which drives to search.  If DriveSpec is
  678.           not specified the current disk is searched.  A simple DOS
  679.           drive letter designation can be specified (e.g., C:) or a
  680.           list of drives can be specified (e.g., ABC:).  Also, a '*'
  681.           can be used to search all drives except A: and B:.  When '*'
  682.           is used FFG skips any drives that are redundant logical
  683.           aliases of drives (e.g., substitute drives) that would have
  684.           already been searched.  When '*' is used, it can be combined
  685.           with an explicit search list (e.g., ab*:); the drives that
  686.           are explicitly listed will be searched first.  If you wish
  687.           to specify "all drives but..." then list the drives to
  688.           exclude after the '*' (e.g., *cd).  Finally, a range of
  689.           drives may be specified (e.g., a-z:).  All of the above can
  690.           be combined (e.g., a-z*bcf-v:, which means all but B:, C:,
  691.           and F:-V:).  If any drives that are explicitly specified
  692.           cannot be accessed, such as empty floppy drives, FFG reports
  693.           them as inaccessible.  If a drive letter appears both before
  694.           and after the '*' in a DriveSpec, it is not searched.  See
  695.           the following DriveSpec examples.  (Advanced: See also the
  696.           /: option to change default behavior.)
  697.  
  698.           PathSpec tells FFG which directory to use as the search
  699.           starting point.  The specified directory and all descendent
  700.           subdirectories will be searched unless the NO RECURSION
  701.           option (/r) is specified.  See the following PathSpec
  702.           examples.
  703.  
  704.           NameMask gives FFG a file name pattern to look for.
  705.           Multiple name masks can be specified by separating them with
  706.           a comma (',') sign.  NameMask can use DOS wildcard
  707.           characters '*' and '?', but they have extended functions.
  708.           The '*' will match zero or more characters and the '?' will
  709.           match exactly one character.  The period that separates the
  710.           file first name and the filename extension is treated as any
  711.           other character in the name.  If a terminating backslash is
  712.           appended to the list of NameMasks, FFG will search for
  713.           directories in lieu of files.  See the following NameMask
  714.  
  715.           File Finder/Grouper          12                  (c) EnGamma
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.           examples.
  724.  
  725.           NameMasks can also include alternative patterns to concisely
  726.           specify multiple masks that have common elements.  For
  727.           example, rather than specify "*.BAT,*.COM,*.EXE", you can
  728.           use "*.[BAT,COM,EXE]".  The brackets contain different
  729.           possible alternatives for that part of the NameMask.
  730.           Brackets can be nested.  Here are two more complicated
  731.           examples:
  732.  
  733.             1.  Let's say you want to see all files which have names
  734.           that are variants of "CONFIG" or an abbreviation of it.
  735.           Here's how you might specify it: "*C[[O,]N,]F[I,]G*",
  736.  
  737.             which is equivalent to specifying:
  738.  
  739.               "*CONFIG*,*CONFG*,*CNFIG*,*CNFG*,*CFIG*,*CFG*"
  740.  
  741.             2.  Let's say you want a listing of all archiving
  742.           programs, including batch files that perform and archiving
  743.           function.  Here's how you could specify it:
  744.  
  745.               "*[ZIP,ARC,ARJ,LHA,PAK,ZOO]*.[EXE,COM,BAT]"
  746.  
  747.             The above is equivalent to specifying 18 separate
  748.             NameMasks:
  749.  
  750.               "*ZIP*.EXE,*ZIP*.COM,*ZIP*.BAT,...,*ZOO*.COM,*ZOO*.BAT"
  751.  
  752.           NOTE: Slashes can be used instead of commas as in
  753.                 "*.[BAT/COM/EXE]".  This permits a NameMask to be
  754.                 passed to FFG as a parameter to a batch file.  This
  755.                 would not otherwise be possible using commas because
  756.                 DOS considers the comma to be a batch file command-
  757.                 line argument delimiter.
  758.  
  759.           Drive Specifier (DriveSpec) Examples:
  760.  
  761.           These examples illustrate the different ways to specify
  762.           which disk drives should searched.
  763.  
  764.           ffg  filename        -  Searches current drive
  765.  
  766.           ffg  c:filename      -  Searches drive C:
  767.  
  768.           ffg  *:filename      -  Searches all drives but A:, B:, and
  769.                                 redundant logical alias drives.
  770.  
  771.           ffg  ab*:filename     -  Searches all drives but redundant
  772.                                 logical alias drives
  773.  
  774.           File Finder/Grouper          13                  (c) EnGamma
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.           ffg  a-z:filename     -  Searches all drives
  783.  
  784.           ffg  ec*:filename     -  Searches E: then C: then all other
  785.                                 non-redundant drives but floppies
  786.  
  787.           ffg  *c:filename      -  Searches all non-redundant drives but
  788.                                 C: and floppies
  789.  
  790.           ffg d*m-z:filename    -  Searches D: then all non-redundant
  791.                                 drives except M: through Z:
  792.  
  793.           The /: option can be used to reconfigure and customize the
  794.           way FFG treats the wildcard drive (*:) and which drive(s)
  795.           FFG searches when no drives are specified.  Refer to the /:
  796.           option description for details.  Also, see how this
  797.           configuration change can be retained using the FFGOPT
  798.           environment variable.
  799.  
  800.           File Path Specifier (PathSpec) Examples:
  801.  
  802.           These examples illustrate the different ways to specify the
  803.           directory where the search should start.
  804.  
  805.           ffg  filename        -  Searches from root directory
  806.  
  807.           ffg  \filename       -  Searches from root directory
  808.  
  809.           ffg  \DOS\filename    -  Searches from \DOS directory
  810.  
  811.           ffg  .\filename      -  Searches from current directory
  812.  
  813.           ffg  ..\filename      -  Searches from parent of current
  814.                                 directory
  815.  
  816.           ffg  \filename /r     -  Searches only the root directory, no
  817.                                 subdirectories
  818.  
  819.           File Name Mask (NameMask) Examples:
  820.  
  821.           These examples illustrate the different ways to search based
  822.           on the file name.
  823.  
  824.           ffg  *.*            -  Searches for all files
  825.  
  826.           ffg  *              -  Searches for all files (identical to
  827.                                 *.*)
  828.  
  829.           ffg  *\             -  Searches for all directories
  830.  
  831.           ffg  *bat           -  All files ending in 'BAT' (Finds:
  832.  
  833.           File Finder/Grouper          14                  (c) EnGamma
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.                                 BALLBAT, WOMBAT, AUTOEXEC.BAT...)
  842.  
  843.           ffg  *.bat           -  All files with a '.BAT' extension.
  844.                                 (Finds: BALL.BAT but will NOT find
  845.                                 BALLBAT)
  846.  
  847.           ffg  *read*me*       -  All files with 'read' anywhere in name
  848.                                 followed by 'me' (Finds: READ.ME, PLS-
  849.                                 READ.ME, README, README.COM,
  850.                                 READU.NME, YOUREAD.ME)
  851.  
  852.           ffg  *help*,*hlp* or
  853.           ffg  *h[e,]lp*       -  All files with 'help' or 'hlp'
  854.                                 anywhere in the name.  (Finds:
  855.                                 WINHELP.EXE, SETUP.HLP,
  856.                                 PRINTHLP.EXE...)
  857.  
  858.           ffg  *c*f*g*         -  All files with 'c', 'f', and 'g' in
  859.                                 order in name.  (Finds: CONFIG.SYS,
  860.                                 MIDIMAP.CFG, CFGSAVE.DLL, MYCFG.DAT,
  861.                                 MYCONFG.FIL...)
  862.  
  863.           ffg  *.             -  Finds extensionless files
  864.  
  865.           ffg  ????.*          -  Finds files with exactly four
  866.                                 characters in first name.  (Finds:
  867.                                 DATA.IN, DATA.OUT, TASM.EXE, TEST...;
  868.                                 Doesn't find: TEST1, TST.DAT...)
  869.  
  870.           ffg  *bat?*          -  Finds files with 'BAT' anywhere in
  871.                                 name but at the end.  (Finds:
  872.                                 BATLIB.COM, MYBAT.DAT, BALLBATS...;
  873.                                 Doesn't find: BALLBAT, AUTOEXEC.BAT)
  874.  
  875.           ffg  ??????          -  Finds all files having exactly 6
  876.                                 character names, including the period
  877.                                 if the file has an extension.  (Finds:
  878.                                 SCRAPS, GO.BAT, SAVE.C)
  879.  
  880.           ffg * /x*.bat        -  Finds all files but DOS batch files
  881.                                 (.BAT)
  882.  
  883.           ffg *win*\           -  Searches for all directories with
  884.                                 'WIN' anywhere in the directory name
  885.  
  886.           ffg *arc*.[com,exe]   -  Search for all 'arc' programs
  887.  
  888.  
  889.  
  890.  
  891.  
  892.           File Finder/Grouper          15                  (c) EnGamma
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.                   Alternate Methods of Entering FFG Parameters
  901.  
  902.           If no parameters are entered on the command line, then FFG
  903.           will prompt you for input.  In this case, the number of
  904.           parameters are not limited by screen width or the DOS 128
  905.           character command line limit.  This feature is also useful
  906.           to let FFG be invoked by menu choices or by clicking on a
  907.           icon in Windows since it doesn't require the
  908.           parameters/options to be entered ahead of time.
  909.  
  910.           Alternatively, you can put FFG parameters and options on the
  911.           first line of an ASCII text file and have FFG get its input
  912.           from that file.  For example, if you put FFG
  913.           parameters/options on the first line inside a file named
  914.           PARAMS.FFG you would run FFG with those parameters as:
  915.  
  916.               ffg < params.ffg
  917.  
  918.           This uses the DOS input redirection operator '<' to tell FFG
  919.           to take its input from the file instead of the keyboard.
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.           File Finder/Grouper          16                  (c) EnGamma
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.               Alphabetical Listing of Command Line Options/Switches
  960.  
  961.           Quick Reference:
  962.  
  963.           Option  Function
  964.           /a      Filter by Attributes of File
  965.           /b      Set Beep when file found, prompted, and/or done
  966.           /d      Filter by Date of File
  967.           /e      Execute Command for each find
  968.           /f      Set Format of Output
  969.           /g      Go to directory
  970.           /h      Filter Hidden directories
  971.           /p      Set Pause each screenful, every n lines, when done
  972.           /q      Set Quiet/no screen output
  973.           /r      Do not Recursively search subdirectories
  974.           /s      Filter by Size of file
  975.           /t      Filter by Time of file
  976.           /v      Set Video mode # of lines
  977.           /x      Filter by eXcluding file names
  978.           /z      ZIP and other archive file search
  979.           /1      Find only 1 file
  980.           /$      Filter by Text/code string within file
  981.           /:      Set Drives and Drive types to be searched
  982.           /!      Set to disable various user interrupt methods
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.           File Finder/Grouper          17                  (c) EnGamma
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.           Options - Detailed Reference:
  1019.  
  1020.           Filtering by File Attributes
  1021.  
  1022.           /a  Attributes of File
  1023.  
  1024.           /aAttrMask[[,|']AttrMask...] - include only files matching
  1025.           specified attributes
  1026.  
  1027.               AttrMask = is a string composed of H,S,R,A,'.'
  1028.  
  1029.               H = hidden attribute set.
  1030.               S = system attribute set.
  1031.               R = read-only attribute set.
  1032.               A = archive attributes set.
  1033.               ! = before one of the above, it means not set
  1034.               . = "specified attributes period"; unspecified
  1035.                   attributes must not be set; The period must be at
  1036.                   the end of the string, e.g. /aHR. = hidden AND read
  1037.                   only files with no other attributes set.
  1038.  
  1039.               Attribute Examples
  1040.  
  1041.               /aR                   - Read-only files
  1042.               /aH                   - Hidden files
  1043.               /a!S                  - All but System files
  1044.               /aA                   - Files with Archive bit set
  1045.               /aHR                  - Files that are both hidden and
  1046.                                       read-only
  1047.               /aHR.                 - Hidden&Read-only files with no
  1048.                                       other attributes set
  1049.               /aH!R                 - Hidden files that are not read-
  1050.                                       only
  1051.               /a!H                  - Files that are not hidden
  1052.               /a!H!R                - Files that are neither hidden or
  1053.                                       read-only
  1054.               /aHR!S!A              - Files with only hidden and read-
  1055.                                       only attributes (same as /aHR.)
  1056.               /a!H /a!S /a!R        - Normal files (not Hidden AND not
  1057.                                       System AND not Read-only)
  1058.               /aHS,SR,HR /a!H,!S,!R - Any two of H, S, R, but not all
  1059.                                       three
  1060.  
  1061.  
  1062.           Audible Beep for Certain Events
  1063.  
  1064.           /b  Beep - Beeps the system speaker for specified events
  1065.  
  1066.           /b[F][P][D][E] - Beeps when:
  1067.  
  1068.  
  1069.           File Finder/Grouper          18                  (c) EnGamma
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.               F = a file is found
  1078.               P = user is prompted
  1079.               D = program is done running
  1080.               E = Error
  1081.  
  1082.                 if /b is specified alone beeps will occur for all of
  1083.                 the above
  1084.  
  1085.               If multiple /b options are encountered, the right-most
  1086.               will override previous settings.  For example, /bf /bd
  1087.               will cause beeping only when FFG is done.
  1088.  
  1089.               [See also "Configuring FFG"]
  1090.  
  1091.  
  1092.           Filtering by File Date
  1093.  
  1094.           /d  Date of File
  1095.  
  1096.           /dDateRangeStr[[,|']DateRangeStr...] - include only files
  1097.           matching specified date range
  1098.  
  1099.               where DateRangeStr is one of the following:
  1100.  
  1101.               mm/dd/yy              - only files matching mm/dd/yy
  1102.               m1/d1/y1-m2/d2/y2     - only files matching this date
  1103.                                       range inclusive
  1104.               -mm/dd/yy             - only files on or before this
  1105.                                       date
  1106.               mm/dd/yy-             - only files on or after this date
  1107.               T                     - Relative: only files with
  1108.                                       Today's date
  1109.               nT-Tm                 - Relative: n days before TODAY to
  1110.                                       m days after today
  1111.               nT-mT                 - Relative: n days before TODAY to
  1112.                                       m days before TODAY
  1113.               [Su|Mo|Tu|We|...|Sa]  - only file matching specified day
  1114.                                       of the week. Can also specify a
  1115.                                       range in this way.  Use alone or
  1116.                                       in addition to above date
  1117.                                       options.
  1118.  
  1119.               Asterisks may be used in lieu of mm,dd,yy date elements
  1120.               to ignore an element.  The characters M, D, Y can be
  1121.               used in lieu of numeric mm, dd, yy elements to use the
  1122.               current month (M), day (D), year (Y).  If some elements
  1123.               are left off assumptions are made as follows:  If an
  1124.               element is left off and its separator '/' is used then
  1125.               the current value for the missing element is assumed
  1126.               (e.g. 9//93 -> 9/D/93).  If one separator is missing
  1127.  
  1128.           File Finder/Grouper          19                  (c) EnGamma
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.               (i.e., xx/yy) a guess is made based on the values used
  1137.               for xx and yy:  If it is possibly a mm/yy value, then
  1138.               mm/*/yy (any day) is assumed.  If it is possible a mm/dd
  1139.               value then mm/dd/Y (current year) is assumed.  If it's
  1140.               neither of the above then its a dd/yy value and M/dd/yy
  1141.               is assumed.  Similar guesses are made if both separators
  1142.               are missing (i.e., xx):  If xx is possible a year then
  1143.               */*/yy is assumed.  If xx is possibly a day, then M/dd/Y
  1144.               is assumed.
  1145.  
  1146.               If /d is specified with no date filter, a default value
  1147.               of 'today' is assumed (i.e., /d = /dT).
  1148.  
  1149.               Date Examples
  1150.  
  1151.               /d1/1/93              - Files dated 1/1/93
  1152.               /d1/1/80-12/31/80     - Files having a 1980 date
  1153.               /d-12/31/92           - Files dated 1992 and earlier
  1154.               /d1/1/93-             - Files later than 1992
  1155.               /dT                   - Files dated TODAY
  1156.               /d6T-T                - Files dated in the last 7 days
  1157.               /d14T-7T              - Files dated 7-14 days ago
  1158.               /dSu                  - Files dated on a Sunday
  1159.               /d6T-T /dFr           - Files dated last Friday
  1160.               /d6T-T /dSa-Su        - Files dated last Weekend
  1161.               /dM/D/Y               - Files dated today (same as /dT)
  1162.               /d//                  - Files dated today
  1163.               /d1-15                - Files dated 1st-15th of this
  1164.                                       month
  1165.               /d80-85               - Files dated between 1980 and
  1166.                                       1985
  1167.               /d7/92-12/92          - Files dated in second half of
  1168.                                       1992
  1169.  
  1170.  
  1171.           Executing a Command for Each Found File
  1172.  
  1173.           /e  Execute Command for each find
  1174.  
  1175.           /e[!][CommandStr] - Execute a command for each found file.
  1176.  
  1177.               where CommandStr is either:
  1178.  
  1179.               1. Not specified, in which case the found file itself is
  1180.               executed.  It is assumed the found file is executable,
  1181.               otherwise the command will not execute.
  1182.  
  1183.               2. It is a DOS command string including optional Format
  1184.               Specifiers.  The Format Specifiers are the same as those
  1185.               used for output formatting (see /f description) except
  1186.  
  1187.           File Finder/Grouper          20                  (c) EnGamma
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.               that they must be preceded by a '%' character to
  1196.               distinguish them from normal characters.  For example,
  1197.               to represent the full file name, %n would be used.
  1198.               Spaces are represented with %_ and double quotes are
  1199.               represented by %'.  These two special specifiers are
  1200.               required because spaces are interpreted as separators
  1201.               between command parameters and double quotes are used to
  1202.               treat a string with spaces as a unit.  Inside batch
  1203.               files, two percent signs %% are required to avoid having
  1204.               DOS interpret the % as a replaceable parameter.
  1205.  
  1206.               The command is executed from the disk drive and
  1207.               directory of the found file, so in most cases it is not
  1208.               necessary to specify %p\%n when referring to the found
  1209.               file; %n would suffice.
  1210.  
  1211.               Confirmation - Normally FFG asks the user to confirm
  1212.               whether the command should be executed.  However, if the
  1213.               '!' is specified, the command will be executed for all
  1214.               found files without asking the user for confirmation.
  1215.               When confirmation is on, the user is given the following
  1216.               options:
  1217.  
  1218.                   1. <Y>es - Execute the command
  1219.                   2. <N>o  - Skip the command execution
  1220.                   3. <A>ll - Execute the command and turn off
  1221.                      subsequent confirmations
  1222.                   4. <S>hell - Shell to the DOS prompt
  1223.                   5. <ESC> - Quit
  1224.  
  1225.               Execute Command Examples:
  1226.  
  1227.               /e                    - Execute each found file
  1228.                                       w/confirmation
  1229.               /e!                   - same as above without
  1230.                                       confirmation
  1231.               /e"REN %P\%N %F.NEW"  - => ren d:\path\fname.ext fname.new
  1232.               /eREN%_%P\%N%_%F.NEW  - same as above
  1233.               /eDEL%_%P\%N          - => del d:\path\fname.ext (%P\
  1234.                                       optional)
  1235.               /eMD%_NEWSBDIR        - => md newsbdir (make new
  1236.                                       subdirectory)
  1237.               /e"COPY %N A:"        - => copy fname.exe a: (note that by
  1238.                                       quoting the part of command
  1239.                                       string containing spaces, you
  1240.                                       can avoid having to use the
  1241.                                       space Format Specifier, %_)
  1242.  
  1243.              Memory Available For Commands - When a command is executed
  1244.              with the /e option all but about 6 KB of the memory
  1245.  
  1246.           File Finder/Grouper          21                  (c) EnGamma
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.               occupied by FFG is swapped to EMS, XMS, or Disk to
  1255.               maximize the amount of memory available to the executed
  1256.               program.
  1257.  
  1258.  
  1259.           Customizing the Format of FFG Output
  1260.  
  1261.           /f  Format of Output
  1262.  
  1263.           /fxFormatStr
  1264.  
  1265.               There are four basic types of output formats supported
  1266.               by FFG: Columnar output (the default), Packed path,
  1267.               ASCII Comma delimited and Batch File.  Within each of
  1268.               these types there is much flexibility in defining the
  1269.               precise output (see Format Strings below).  Examples of
  1270.               each are:
  1271.  
  1272.               1. Columnar Output (/fc, this is the default format)
  1273.  
  1274.                 FILENAME.EXT 12345  1/01/92 23:59 HSRA C:\DIRECT\SUBDIR
  1275.  
  1276.               2. Packed Path Output (/fp)
  1277.  
  1278.                 C:\DIRECT\SUBDIR\FILENAME.EXT
  1279.  
  1280.               3. ASCII Comma Delimited Database Output (/f,)
  1281.  
  1282.           "FILENAME.EXT","12345","1/01/92","23:59:00","HSRA","C:\DIRECT\SUBDIR\"
  1283.  
  1284.               4. Batch File Output (/fb)
  1285.  
  1286.                 %1 C:\PATH\FILENAME.EXT %2 %3 %4 %5 %6 %7 %8 %9
  1287.  
  1288.  
  1289.               Here is a detailed description of the output formatting
  1290.               options:
  1291.  
  1292.           /fxFormatStr
  1293.  
  1294.           x = C Column        - Fixed field width columnar output
  1295.                                 ("NSDTAP" default)
  1296.  
  1297.               P Packed        - Merge all fields together ("PN" is
  1298.                                 default)
  1299.  
  1300.               , Comma         - Comma-delimited ASCII database format
  1301.  
  1302.               B Batch File    - Format for batch processing with %1,
  1303.                                 %2....
  1304.  
  1305.           File Finder/Grouper          22                  (c) EnGamma
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.               S Summary       - Summary Control - This option
  1314.                                 determines whether a summary report is
  1315.                                 displayed and is used independent of
  1316.                                 the other /f option switches.  The 's'
  1317.                                 must be followed by '.' or '!', which
  1318.                                 have the following meanings:
  1319.  
  1320.                                 . - Summary only
  1321.                                 ! - no summary (good for when you are
  1322.                                     redirecting output and don't want
  1323.                                     the summary report to be
  1324.                                     redirected to the file).
  1325.  
  1326.               FormatStr is a string composed of Format Specifiers:
  1327.  
  1328.               f   = file First name (e.g. if file is FNAME.EXT then
  1329.                     "FNAME" is displayed)
  1330.             { c   = Comments/File Descriptive notes
  1331.               e   = file Extension (e.g. if file is FNAME.EXT then
  1332.                     ".EXT" is displayed)
  1333.               s   = Size of file
  1334.               d   = Date of file
  1335.               t   = Time of file
  1336.               n   = Full FileName, including extension (e.g.,
  1337.                     FNAME.EXT)
  1338.               a   = file Attributes e.g. "H-R-" for a hidden and read-
  1339.                     only file; *ZIP, *ARC for files found in ZIP and
  1340.                     ARC files
  1341.               p   = full Path to file, including disk drive (trailing
  1342.                     backslash '\' is excluded for all but Comma-
  1343.                     delimited output)
  1344.               r   = diRectory path without drive (trailing backslash
  1345.                     '\' is excluded for all but Comma-delimited
  1346.                     output)
  1347.               h   = Home directory or in other words, the directory
  1348.                     from which FFG was started.
  1349.               .   = Same as h (home directory)
  1350.               _   = blank space
  1351.               '   = single quote translated to double quote (/e option
  1352.                     only).
  1353.               %   = to get a % sign (/e option only)
  1354.               \   = backslash directory separator
  1355.               :   = drive on which file was found including colon
  1356.                     (e.g. C:)
  1357.               ;   = drive on which file was found excluding colon
  1358.                     (e.g. C)
  1359.               0-9 = (meaningful with the /fB option only) inserts a
  1360.                     corresponding DOS .BAT file replaceable parameter
  1361.                     %0-%9 (e.g. 1->%1);
  1362.  
  1363.  
  1364.           File Finder/Grouper          23                  (c) EnGamma
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.               Formatting Examples
  1373.  
  1374.               1. /FCnsdtap displays output in fixed Columns (the
  1375.               default) as follows:
  1376.  
  1377.                   FILENAME.EXT 12345  1/01/92 23:59 HSRA C:\DIR\SUBDIR
  1378.  
  1379.               2. /FPpn displays results in a Packed format as follows:
  1380.  
  1381.                   C:\DIR\SUBDIR\FILENAME.EXT
  1382.  
  1383.               3. /FPpn_s_d_t_a displays results in a Packed format as
  1384.               follows:
  1385.  
  1386.                   C:\DIR\SUBDIR\FILENAME.EXT 12345 1/01/92 23:59 HSRA
  1387.  
  1388.               4. /F, displays Comma-delimited results for import into
  1389.               a database as follows:
  1390.  
  1391.  
  1392.         "FILENAME.EXT","12345","1/01/92","23:59:00","HSRA","C:\DIR\SUBDIR"
  1393.  
  1394.               5. /FB1_2_p\n_34_5 provides format for later Batch file
  1395.               processing:
  1396.  
  1397.                   %1 %2 C:\DIR\SUBDIR\FILENAME.EXT %3%4 %5
  1398.  
  1399.               6. /FB1_p\n_f.2 > changext.bat creates a batch file with
  1400.               lines as follows:
  1401.  
  1402.                   %1 C:\DIR\SUBDIR\FILENAME.EXT FILENAME.%2
  1403.  
  1404.                   Which could then be used as follows to change the
  1405.                   extension of all found files to ".NEW":
  1406.  
  1407.                   changext rename NEW
  1408.  
  1409.               7. /F, /FS! displays comma-delimited output without
  1410.               summary information.
  1411.  
  1412.               8. /FS. displays summary information only
  1413.  
  1414.               [See also "Configuring FFG"]
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.           File Finder/Grouper          24                  (c) EnGamma
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.           Go To Found File
  1432.  
  1433.           /g# Go to directory of found file
  1434.  
  1435.               /g# where # is a number N; goto Nth found file
  1436.  
  1437.               When this option is used, FFG changes the current disk
  1438.               drive and directory to the drive/directory of the Nth
  1439.               found file.  No other files are found.  If the found
  1440.               file is in an archive file (/z option used), FFG changes
  1441.               to the disk and directory of the archive file that
  1442.               contains the found file.  If searching for directories
  1443.               instead of files, FFG changes into the found directory
  1444.               (makes it the current directory).  If /g is specified
  1445.               without a number, then you will be prompted for each
  1446.               found file.
  1447.  
  1448.               # = blank, 0  - pause and prompt user after each found
  1449.                               file
  1450.               # = 1         - go directly to first found file without
  1451.                               prompting
  1452.               # = other #   - go to directly to #th found file withoug
  1453.                               prompting
  1454.  
  1455.               Multiple /g options override previous settings.  For
  1456.               example, /g /g5 is equivalent to /g5.
  1457.  
  1458.  
  1459.           Searching Hidden Directories
  1460.  
  1461.           /h  Hidden directories
  1462.  
  1463.               /h[.|!]
  1464.  
  1465.               Hidden directories are searched by default.  The
  1466.               following modifications are possible:
  1467.  
  1468.               /h  - toggle hidden directories search option (i.e,
  1469.                     hidden directories will be skipped since the
  1470.                     default is to search them)
  1471.               /h. - only hidden directories are searched
  1472.               /h! - do not search hidden directories
  1473.  
  1474.               If multiple /h options are encountered, the right-most
  1475.               one overrides previous settings.
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.           File Finder/Grouper          25                  (c) EnGamma
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.           Pausing FFG Output
  1491.  
  1492.           /p[#] Pause each screenful, when done or page at a time
  1493.           /pd   Pause when FFG is done.
  1494.  
  1495.               /p[#] pause after every # lines of output; # is
  1496.               optional;
  1497.  
  1498.               This option causes output and searching to pause after #
  1499.               lines of screen output.  If # is not specified, the
  1500.               current screen height will be assumed.  If # is set to
  1501.               0, there will be no pause (as though /p were not used at
  1502.               all).
  1503.  
  1504.               # = blank     - pause after one screenful of output.
  1505.               # = 0         - continuous output - don't pause (this is
  1506.                               the default if /p is not specified)
  1507.               # = 1         - pause after each found file (useful for
  1508.                               providing an opportunity for user
  1509.                               interaction
  1510.               # = other #   - pause after # lines of output.
  1511.               # = d         - pause when FFG is done.  This is useful
  1512.                               when running FFG from Windows or from a
  1513.                               menu system so that you have a chance to
  1514.                               view the last screenful of FFG output
  1515.                               before FFG exits and returns to Windows
  1516.                               or the menu system.
  1517.  
  1518.               [See also "Configuring FFG"]
  1519.  
  1520.  
  1521.           Suppressing FFG Screen Output
  1522.  
  1523.           /q  Quiet - Suppresses all but specified output events
  1524.  
  1525.           /q[M][T][S][F] - Suppresses output for all but:
  1526.  
  1527.               M = Status meter
  1528.               T = program title line
  1529.               S = Output summary
  1530.               F = Found File
  1531.  
  1532.                 if /q is specified alone all output is suppressed
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.           File Finder/Grouper          26                  (c) EnGamma
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.               If multiple /q options are encountered, the right-most
  1550.               one overrides previous settings.
  1551.  
  1552.               [See also "Configuring FFG"]
  1553.  
  1554.  
  1555.           Searching Subdirectories
  1556.  
  1557.           /r  Recursion (subdirectory search)
  1558.  
  1559.               By default FFG recursively searches all descendent
  1560.               directories of the starting directory in the directory
  1561.               tree structure.  When the /r option is used only the
  1562.               starting directory is searched.
  1563.  
  1564.               Multiple /g options toggle this setting.  For example,
  1565.               /r /r is equivalent to not specifying /r.
  1566.  
  1567.  
  1568.  
  1569.           Filtering by File Size
  1570.  
  1571.           /s  Size of file
  1572.  
  1573.               /sSizeRangeStr[[,|']SizeRangeStr...] - include only
  1574.               files matching specified size
  1575.  
  1576.               where SizeRangeStr is one of the following:
  1577.  
  1578.               Size                  - only files of this size
  1579.               MinSize-MaxSize       - only files within this size
  1580.                                       range inclusive
  1581.               -MaxSize              - only files this size or smaller
  1582.               MinSize-              - only files this size or larger
  1583.  
  1584.               MinSize, Size, MaxSize can use suffixes K, M, G as
  1585.               abbreviations of 1 Kilobyte, 1 Megabyte, and 1 Gigabyte
  1586.               (e.g. /s1K-25M)
  1587.               Size Examples
  1588.  
  1589.               /s0                   - empty files
  1590.               /s1M-                 - very large files (>= 1 megabyte)
  1591.               /s-500                - tiny files (<= 500 bytes)
  1592.               /s1K-2K               - 1024-byte to 2048-byte files
  1593.               /s-500 /s!0           - smaller than 500 bytes but not
  1594.                                       empty
  1595.               /s-500,1M-            - tiny or very large files
  1596.  
  1597.  
  1598.           Filtering by File Time
  1599.  
  1600.           File Finder/Grouper          27                  (c) EnGamma
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.           /t  Time of file
  1609.  
  1610.               /tTimeRangeStr[[,|']TimeRangeStr...] - include only
  1611.               files matching specified times
  1612.  
  1613.               where TimeRangeStr is one of the following:
  1614.  
  1615.               hh:mm:ss              - only files matching this time
  1616.               h1:m1:s1-h2:m2:s2     - only files within this time
  1617.                                       range inclusive
  1618.               -hh:mm:ss             - only files on or before this
  1619.                                       time
  1620.               hh:mm:ss-             - only files on or after this time
  1621.               nN, Nm                - n minutes before now, m minutes
  1622.                                       after now - can be used as min
  1623.                                       or max in time ranges
  1624.  
  1625.               Times must be specified using a 24-hour clock (i.e,
  1626.               23:00 instead of 11:00 PM).  Time ranges may span 0:00
  1627.               (midnight).  Asterisks may be used in lieu of hh,mm,ss
  1628.               time elements to ignore an element.  The characters H,
  1629.               M, S can be used in lieu of numeric hh, mm, ss elements
  1630.               to use the current hours (H), minutes (M), seconds (S).
  1631.               If some elements are left off assumptions are made as
  1632.               follows:  If an element is left off and its separator
  1633.               ':' is not used then '0' is assumed for that element
  1634.               (e.g., 9 -> 9:00:00).  However, if the separator is
  1635.               specified then '*' is assumed for that element (e.g., 9:
  1636.               -> 9:*:*)
  1637.  
  1638.               If /t is used without a time filter, then a default
  1639.               value of 'now' is used (i.e., /t = /tN = /tH:M:*).
  1640.  
  1641.               Time Examples
  1642.  
  1643.               /t-8:00               - Earlybird files (before 8am)
  1644.               /t17:00-8:00          - After-hours files
  1645.               /t17:00-              - Evening/night files
  1646.               /t8:00-17:00          - Workday files
  1647.               /t10N- /dT            - Recent files (within last 10
  1648.                                       minutes)
  1649.               /t9:*:*               - Same as range 9:00:00-9:59:59
  1650.               /t9-10                - Same as 9:00:00-10:00:00
  1651.               /t9:-10:              - Same as 9:*:*-10:*:*
  1652.               /t::                  - Same as *:*:*
  1653.               /t9:10:
  1654.  
  1655.  
  1656.           Setting Video Mode (number of lines on screen)
  1657.  
  1658.  
  1659.           File Finder/Grouper          28                  (c) EnGamma
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.           /v[2][4][5] - Change video lines to 25, 43,or 50
  1668.  
  1669.               2 = 25 lines
  1670.               4 = 43 lines (EGA and VGA only)(43 even if its VGA)
  1671.               5 = 50 lines (VGA only)
  1672.  
  1673.               if /v is specified alone the video mode is toggle
  1674.               between the 25 and the maximum number of lines supported
  1675.               (43 or 50 depending on whether video is EGA or VGA).
  1676.  
  1677.               If multiple /v options are encountered, the right-most
  1678.               one overrides previous settings.
  1679.  
  1680.               [See also "Configuring FFG"]
  1681.  
  1682.  
  1683.           Filtering by Excluding File Names
  1684.  
  1685.           /x  Exclude Files
  1686.  
  1687.               /xFileMaskList - exclude all files in FileMaskList,
  1688.  
  1689.               where FileMaskList is a list of file specs separated by
  1690.               ',' commas.  For example, /x*.bat,*.exe,*.com or
  1691.               /x*.[bat,exe,com]
  1692.  
  1693.               If multiple /x option switches are specified, a file
  1694.               will be excluded only if it matches all of the separate
  1695.               /x criteria.  For example, /x*boy* /x*dog* will exclude
  1696.               the files BOYDOG.DAT, DOGBOY.DAT, but not BOYS.DAT or
  1697.               DOGS.DAT.
  1698.  
  1699.               To exclude files that contain either 'BOY' or 'DOG' in
  1700.               the name specify:  /x*[boy,dog]*, which is equivalent to
  1701.               /x*boy*,*dog*
  1702.  
  1703.  
  1704.           Searching Inside Archive Files
  1705.  
  1706.           /z  ZIP and other archive file search
  1707.  
  1708.               /z[.][ArcExtList] - Search inside archive files.
  1709.  
  1710.               .           = search ONLY inside archive files.
  1711.               ArcExtList  = list of file extensions to treat as
  1712.                             archives. e.g.,
  1713.                                                     /zZIP,ARC,LZH,ARJ,ZOO,COM,EXE
  1714.  
  1715.               FFG currently supports ZIP, ARC, LZH, ARJ, ZOO, and XEQ
  1716.               archive files.  It also supports ZIP, LHA and ARJ self-
  1717.               extracting (.EXE) archive files.
  1718.  
  1719.           File Finder/Grouper          29                  (c) EnGamma
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.               If /z is used in conjunction with /$ (text search) the
  1728.               files within the archive will be extracted and searched
  1729.               if:
  1730.  
  1731.                           - you have the associated extraction program
  1732.                             (e.g., PKUnzip, LHA) on you DOS search
  1733.                             path and
  1734.                           - FFG can find temporary disk scratch space
  1735.                             to extract the file (see Setting a
  1736.                             Temporary Directory in the Miscellaneous
  1737.                             section of this manual).
  1738.  
  1739.               [See also "Configuring FFG"]
  1740.  
  1741.               Archive Examples
  1742.  
  1743.               /zZIP       - Limits archive search to ZIP files
  1744.               /zARC,LZH   - Limits archive search to ARC and LZH files
  1745.               /z.         - Limits search to only archive files
  1746.  
  1747.  
  1748.           Filtering by Finding Text Strings Within Files
  1749.  
  1750.           /$ - Include files containing text the specified text string
  1751.  
  1752.           /$[=c][=!][=#n]TextCodeStr[=c][[,|'][=!][=#n]TextCodeStr2[=c
  1753.           ]...]
  1754.  
  1755.           Include files containing the string(s) represented by
  1756.           TextCodeStr.  TextCodeStr can be a comma-separated/bracketed
  1757.           set of alternatives (see syntax for name searching)
  1758.  
  1759.               TextCodeStr-  TextCodeStr is alphnumeric text with
  1760.                             optional imbedded codes for special
  1761.                             characters.
  1762.  
  1763.               =c          = Case Sensitivity
  1764.  
  1765.                             The '=c' at the beginning of the option
  1766.                             sets the case-sensitivity for all
  1767.                             alternatives specified in the option
  1768.                             argument.  This can be overridden for a
  1769.                             specific alternative by putting a '=c' in
  1770.                             that alternative string.  For example,
  1771.  
  1772.                                     /$=cfirst,second=c,third
  1773.  
  1774.                             would match files containing "first" (case
  1775.                             sensitive) or "second" (ignoring case), or
  1776.                             "third" (case sensitive).
  1777.  
  1778.           File Finder/Grouper          30                  (c) EnGamma
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.                             If mixed case it used in a text string, it
  1787.                             is taken to imply that the search should
  1788.                             be case-sensitive, regardless of whether
  1789.                             '=c' is specified.
  1790.  
  1791.               =!          = Exclude file if TextString found.
  1792.  
  1793.               =#n         = Search only first 'n' bytes of file
  1794.  
  1795.               =Code       = If within TextString '=' is followed by a
  1796.                             1-3 digit numeric code with a value
  1797.                             between 1 and 255, the character
  1798.                             corresponding to that numeric code will be
  1799.                             matched.  This enables specifying control
  1800.                             codes and any other codes that might be
  1801.                             otherwise not be allowed by DOS on the
  1802.                             command line.  For example,
  1803.  
  1804.                                     FFG *.exe /$=cPK=3=4
  1805.  
  1806.                             would search EXE files for self-extracting
  1807.                             PKZip files.  The above /$ option example
  1808.                             is equivalent to /$=cPK=003=004.  The
  1809.                             leading zeroes are necessary only when you
  1810.                             want to follow the code with numeric text.
  1811.  
  1812.           Special characters - Some characters are interpreted by the
  1813.           DOS command line interpreter and if used may give
  1814.           undesirable results.  These include "><|", the DOS
  1815.           redirection and pipe symbols.  The easiest way around this
  1816.           problem is use enclose search strings containing such
  1817.           characters in quotes.  A second way around this problem is
  1818.           to specify the codes for these characters using '=' as
  1819.           described above.  A third way is to use the following
  1820.           alternatives which are interpreted by FFG:
  1821.  
  1822.               =)            = for '>'
  1823.               =(            = for '<'
  1824.               =I or =i      = for '|'
  1825.               =Q or =q      = for '"' (Q for quotes)
  1826.               =:            = for ';'
  1827.               =_            = for ' ' (blank)(to avoid quoting string)
  1828.               ==            = for '=' (to override special function of
  1829.                             =)
  1830.  
  1831.           Also, since the characters ",'[]" have special meaning to
  1832.           FFG in specifying alternatives (as in /$[basket,foot,base]ball),
  1833.           if they are to be part of the search text they must be
  1834.           preceded with an '=' symbol.  For example, /$Bill's is
  1835.           interpreted incorrectly as "Bill" OR "s", but /$Bill='s is
  1836.  
  1837.           File Finder/Grouper          31                  (c) EnGamma
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.           interpreted correctly as "Bill's".
  1846.  
  1847.               Text String Search Examples
  1848.  
  1849.               /$simple    - finds files containing 'simple' regardless
  1850.                             of case (same as /$SIMPLE)
  1851.               /$=csimple  - finds files containing 'simple' - lower
  1852.                             case only
  1853.               /$T[h,]om   - finds files containing 'Tom' or 'Thom' -
  1854.                             case sensitive
  1855.               /$me /$you  - finds files containing both 'me' and 'you'
  1856.                             regardless of case
  1857.               /$T,=!M     - finds files that either contain a 'T' or
  1858.                             don't contain an 'M', case-insensitive.
  1859.               /$=#4=255WPC - finds WordPerfect Corporation product data
  1860.                              files; searches only first 4 bytes of file
  1861.  
  1862.           Efficiency Note:  Searching the contents of a file is much
  1863.                             slower than searching by name, date, time,
  1864.                             size, attributes.  Searching contents is
  1865.                             slower still when you combine it with the
  1866.                             /z option to search for text within
  1867.                             archive files, since the file must be
  1868.                             extracted from the archive to be searched.
  1869.                             Therefore, to improve the speed of a text
  1870.                             search it helps to filter out files based
  1871.                             on these other criteria before searching
  1872.                             the file for text.  FFG will do this
  1873.                             filtering first if you specify other
  1874.                             criteria.  The more narrow the other
  1875.                             criteria are, the greater the speed
  1876.                             improvement will be.  A particularly
  1877.                             important criteria is file size.  If you
  1878.                             put an upper limit on the size of the
  1879.                             files, it will avoid scanning large files.
  1880.  
  1881.                             Another, important way to improve speed is
  1882.                             to embed the '=#n' control sequence in the
  1883.                             text string to limit the text scan to the
  1884.                             first 'n' bytes of the file.  Of course
  1885.                             you need to know approximately how close
  1886.                             the data you are searching for is to the
  1887.                             start of the file.  One of the above
  1888.                             examples, uses this technique.
  1889.  
  1890.  
  1891.           Disk Drives to Search Customization
  1892.  
  1893.           /:*[DriveList]      -  Set wildcard drives
  1894.           /:[!]DriveTypeList  -  Set wildcard drive types
  1895.  
  1896.           File Finder/Grouper          32                  (c) EnGamma
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.           /:_[DriveSpec]      -  Set drives to search when no drive
  1905.                                  specified
  1906.  
  1907.           /:[*|!|_]           -  Resets to defaults
  1908.           The /: option sets which drives and drive types are searched
  1909.           when a wildcard '*' is used for drive and/or when no drive
  1910.           is specified.
  1911.  
  1912.               DriveList      = non-wild list of drives (ranges
  1913.                                allowed)
  1914.               DriveTypeList  = string of drive types composed of one
  1915.                                or more of the following:
  1916.  
  1917.                           C = CD-ROM
  1918.                           F = Floppy
  1919.                           N = Network
  1920.                           S = Substitute
  1921.  
  1922.           Examples:
  1923.  
  1924.               /:*c-f => "ffg *:*.bat" Interpreted as "ffg cdef:*.bat"
  1925.               /:!FCN => "ffg *:*.bat" Searches all drives but Floppy,
  1926.                                       CDROM, and Network drives
  1927.               /:_ab* => "ffg   *.bat" Interpreted as "ffg ab*:*.bat"
  1928.  
  1929.           This option is intended for use with the FFGOPT environment
  1930.           variable.  [See "Configuring FFG"]
  1931.  
  1932.           Limiting Number of Found Files One
  1933.  
  1934.           /1[:|r|z|c]     - Stops after finding 1 file [per drive,
  1935.                             directory, archive, container]
  1936.  
  1937.               : = per drive
  1938.               r = per directory
  1939.               z = per archive
  1940.               c = per container (archive or directory)
  1941.  
  1942.           Disabling User's Ability to Interrupt
  1943.  
  1944.           /![i|q|s|g]     - Disable various user interrupt methods to
  1945.                             prevent user from skipping part of the
  1946.                             search
  1947.  
  1948.               i = disable Input from keyboard of any kind (same as /!)
  1949.               q = disable Quit/escape using <ESC>, <CTRL>-<BREAK>,
  1950.           <CTRL>-C
  1951.               s = disable Skip drive
  1952.               g = disable Goto
  1953.  
  1954.  
  1955.           File Finder/Grouper          33                  (c) EnGamma
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.                                  Configuring FFG
  1964.  
  1965.           DOS environment variables can be used to set FFG
  1966.           configuration preferences to avoid having to type them in as
  1967.           command line options each time FFG is run.  Say for example,
  1968.           you want to always use 50-line video mode (/v5), packed
  1969.           output format (/fp), and pause when the screen fills (/p).
  1970.           To do this, set the desired options in an environment
  1971.           variable ("FFGOPT" by default).  Options are saved in the
  1972.           "FFGOPT" environment variable using the DOS "set" command as
  1973.           follows:
  1974.  
  1975.               set FFGOPT=/v5 /fp /p
  1976.  
  1977.           FFG will then use the options specified in the environment
  1978.           variable as though they were typed on the command line
  1979.           before any other command line parameters.  To continue with
  1980.           the above example, if you then ran FFG as follows:
  1981.  
  1982.               ffg c:*.bat
  1983.  
  1984.           it would be equivalent to having typed:
  1985.  
  1986.               ffg /v5 /fp /p c:*.bat
  1987.  
  1988.           Although any command line argument can be set in the FFGOPT
  1989.           environment variable, the following options are the most
  1990.           likely candidates, since they are preference items:  /b, /f,
  1991.           /h, /p, /q, /r, /v, /z, /:, /!
  1992.  
  1993.           The best time to set the environment variable is at system
  1994.           startup, which is done by including a "set FFGOPT=" command
  1995.           in AUTOEXEC.BAT.  If desired, the environment variable can
  1996.           be reset (changed) later using the set command.  Microsoft
  1997.           Windows Note: If you set an environment variable from within
  1998.           a DOS window running under Microsoft Windows, the
  1999.           environment variable is set/changed only for that particular
  2000.           window.
  2001.  
  2002.           The name of the environment variable is actually not fixed
  2003.           at "FFGOPT"; instead it is composed of the name of the
  2004.           executable program, "FFG" by default, followed by the fixed
  2005.           "OPT", hence "FFGOPT".  You can use this to your advantage
  2006.           to have differently configured versions of FFG by copying
  2007.           FFG.EXE to new names and setting associated OPT variables,
  2008.           such as:
  2009.  
  2010.               set FFG50OPT=/v5      for FFG50.EXE
  2011.               set FFGPOPT=/p        for FFGP.EXE
  2012.               set GOOPT=/g /qm /bd  for GO.EXE
  2013.  
  2014.           File Finder/Grouper          34                  (c) EnGamma
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.                    Bugs/Known Deficiencies/Future Improvements
  2023.  
  2024.           1.  Further date options are planned such as /dLASTYEAR
  2025.           2.  A combined date-time option is planned (e.g.,
  2026.               /t12/1/93@13:47-)
  2027.           3.  A more general way of specify logical expressions of
  2028.               search criteria is planned, which will allow mixing and
  2029.               matching different criteria in arbitrary boolean
  2030.               expressions.
  2031.           4.  An option to use regular expressions for text searches
  2032.               or name searches or both is planned.
  2033.           5.  There is currently no way to use the "=' character in
  2034.               the FFGOPT variable.
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.           File Finder/Grouper          35                  (c) EnGamma
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.                                   Miscellaneous
  2082.  
  2083.           1.  Interactive Keys - During a search the following keys
  2084.               have a special function:
  2085.  
  2086.               <ESC>         - Aborts/interrupts the search
  2087.               <G>           - Goes to the disk and directory of the
  2088.                               last found file.  If searching for
  2089.                               directories, the found directory will be
  2090.                               made current.
  2091.               <S>           - Skips to the next disk drive
  2092.               <B>           - Causes a beep when search complete
  2093.               <UP>          - Skip to next directory in parent of this
  2094.                               one
  2095.               <DOWN>        - Skip to deeper directory (first
  2096.                               subdirectory of this one)
  2097.               <RIGHT>       - Skip current file.
  2098.               any other key - Pauses the search operation
  2099.  
  2100.           2.  Speed - A powerful and common use of FFG is find all
  2101.               files that contain a specified text string (and then
  2102.               maybe do something to/with them).  However, opening each
  2103.               file on the disk and searching its contents is much
  2104.               slower than finding files based on their external
  2105.               properties such as name, date, time, size etc.  If the
  2106.               files to be searched are compressed within an archive
  2107.               file, the search is slower still.  With a little
  2108.               forethought on your part, FFG's true power can be
  2109.               brought to bear and such searches can be conducted
  2110.               quickly.  The key to speeding up such searches is for
  2111.               you to also specify some additional filtering criteria
  2112.               based on the files' external properties.  If you do
  2113.               this, FFG will filter out files before applying the
  2114.               slower archive extraction and text searching.  For
  2115.               example, you could filter out all executable files and
  2116.               graphic files, exclude files with the system attribute
  2117.               set, very large (> 1 MB) files, very old files etc.  In
  2118.               fact, some defaults have been set up for /x, /s, /a, /$
  2119.               specifically to facilitate excluding files that are
  2120.               probably not of interest in a text search.  These
  2121.               defaults are as follows:
  2122.  
  2123.               /x  =  /x*.[zoo,arc,arj,lzh,zip,bmp,gif,obj,ovy,drv,dll
  2124.                      ,com,exe]
  2125.               /s  =  /s1-1M (excludes empty and very large files)
  2126.               /a  =  /a!s (excludes system files)
  2127.               /$  =  /$=!=#2MZ (excludes files with executable
  2128.                      signature at beginning of file)
  2129.  
  2130.               For example, rather than use:
  2131.  
  2132.           File Finder/Grouper          36                  (c) EnGamma
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.                      FFG *:* /z /$"text to find"
  2142.  
  2143.               you might try something like the following:
  2144.  
  2145.  
  2146.                      FFG *:* /z /$ /$"text to find" /d95- /s /a /x
  2147.  
  2148.           3.  Status Meter - While searching, FFG displays one of two
  2149.               possible status meters (set with /fm[s|p]):
  2150.  
  2151.               a.   The full status meter, which is the default, shows
  2152.                    the directory file being searched, the archive file
  2153.                    (/z), and the file being scanned for text
  2154.                    (/$) along with percentage scanned.  Here is an
  2155.                    example:
  2156.  
  2157.                    D:\PARENT\SUBDIR\[ARCHIVE.ZIP]TEXTFILE.TXT  58%
  2158.  
  2159.               b.   Alternatively, the simple spinning meter can be
  2160.                    used (/fms) which displays the drive currently
  2161.                    being searched and indicates progress with a
  2162.                    spinning run meter.  The spinning meter is updated
  2163.                    one increment each time a new directory or a new
  2164.                    archive file is searched.  When the meter slows, it
  2165.                    is indicative of either a directory with many files
  2166.                    or an archive file.
  2167.  
  2168.           4.  Summary Report - FFG displays a summary report of the
  2169.               search operation.  It includes:
  2170.  
  2171.               - Total bytes inside all found files.
  2172.               - Disk space occupied by found files including unused
  2173.                 space due to the disk cluster/block size.  For files
  2174.                 in an archive, the reported disk space occupied by
  2175.                 files within that archive is limited to the size of
  2176.                 the archive.
  2177.               - Number of directories searched.
  2178.               - Number of directories in which files were found
  2179.               - Name/Date/Time/Size/Attribute/Text criteria used
  2180.               - Starting directory for search if not root directory
  2181.               - Directory mask if wildcards used in directory spec
  2182.               - Number of archive files searched
  2183.               - Number of archive files in which files were found
  2184.               - Number of files that could not be extracted from
  2185.                 archives.
  2186.               - Number of files scanned for text.
  2187.               - Number of files that could not be scanned for text.
  2188.               - The elapsed time from the start of the search.
  2189.  
  2190.           5.  Setting a Temporary Directory - FFG needs to use a
  2191.               temporary directory for text-search archive extracting
  2192.  
  2193.           File Finder/Grouper          37                  (c) EnGamma
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.               (when /z and /$ are used together) and for swapping its
  2202.               program to disk during a /e execute command (only if
  2203.               there is insufficient EMS/XMS).  If you set an
  2204.               environment variable, FFGTMP, to a valid path to which
  2205.               you can write files, then FFG will use it.  If not, FFG
  2206.               will look for a TEMP environment variable and then a TMP
  2207.               environment variable.  If none of these are set to a
  2208.               valid path with sufficient space, FFG will then try C:\
  2209.               and finally the current directory of the current drive.
  2210.               Ideally, you should have one of the above environment
  2211.               variables set to a directory on your fastest drive that
  2212.               has enough space to hold about 250K plus the largest
  2213.               file you might extract from an archive.  If you use a
  2214.               RAM drive, which is best for speed, make sure it is
  2215.               large enough.  If you use a network drive, make sure you
  2216.               have access rights to write files to that directory.
  2217.               Here's an example of how to set the temporary directory
  2218.               in AUTOEXEC.BAT:
  2219.  
  2220.                        set FFGTMP=C:\temp
  2221.  
  2222.           6.  Microsoft Windows - Although not required, there is a
  2223.               Windows PIF file in the FFG package which is set up to
  2224.               run FFG from within Windows.  If you create your own PIF
  2225.               file, allow use of EMS and/or XMS memory for optimal
  2226.               performance.
  2227.  
  2228.           7.  Logical Combination of Search Criteria - Currently,
  2229.               search criteria of different types (e.g., size and date
  2230.               are different types) are combined in a logical AND
  2231.               expression.  That is, for a file to match it must match
  2232.               all criteria.  However, within a single command line
  2233.               option of one type (e.g., /d), multiple comma-separated
  2234.               criteria are combined in a logical OR expression.
  2235.  
  2236.           8.  One Floppy Systems - When a floppy drive is specified to
  2237.               be searched (e.g., ab*:FILENAME or ab:FILENAME or
  2238.               a:FILENAME or b:FILENAME), FFG will search the system's
  2239.               only floppy drive regardless of whether one or both
  2240.               floppies were specified.  The summary will report
  2241.               whichever logical drive letter DOS was using at the time
  2242.               to refer to the drive.  (This might be B: if prior to
  2243.               running FFG you tried accessing drive B:.)
  2244.  
  2245.           9.  FFG can be renamed.  FFG will recognize the new name and
  2246.               display it in the usage screen if you are using DOS 3.0
  2247.               or later.  Note that the FFGOPT environment variable is
  2248.               valid only for FFG.EXE.  If, for example, you rename
  2249.               FFG.EXE to F.EXE, then the corresponding environment
  2250.               variable must be FOPT, not FFGOPT.  (You can use this
  2251.  
  2252.           File Finder/Grouper          38                  (c) EnGamma
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.               feature to have different configured versions of FFG.)
  2261.  
  2262.           10. Conventions - Several options attach special
  2263.               significance to '!' and to '.'.  Generally, '!' is used
  2264.               to represent "negation"/"logical not"/"turn off".
  2265.               Generally '.' is used to represent "only"/"these
  2266.               period"/"no others".  The '=' symbol will be used as a
  2267.               general purpose 'escape' character to indicate that the
  2268.               subsequent character or characters are to be treated
  2269.               differently than normal.  For example, '=c' is used to
  2270.               indicate case-sensitivity in a text search.
  2271.  
  2272.           11. Return Codes - Upon completion of an error-free search,
  2273.               FFG returns 1 if a file was found and 0 if no files were
  2274.               found.  The DOS errorlevel batch command can be used to
  2275.               test for this return value.  A few of the example batch
  2276.               files make use of this feature.
  2277.  
  2278.           12. Commas and batch files - As shown in several of the
  2279.               example batch files, FFG can be used in batch files to
  2280.               build some special or general purpose utilities.
  2281.               However, there is an annoying problem with encapsulating
  2282.               FFG in a batch file that arises because of the use of
  2283.               the comma ',' as a delimiter for search criteria.  The
  2284.               problem arises because when a comma is used in an
  2285.               argument to a batch file command, DOS interprets it just
  2286.               like a space and it is not passed on to FFG.  To
  2287.               sidestep this problem, FFG accepts alternatives to the
  2288.               comma as follows:
  2289.  
  2290.                      For Name criteria (including /x option) you can
  2291.                      use a slash "/" instead of the comma.
  2292.  
  2293.                      For date, time, size, day-of-week, attribute,
  2294.                      and text criteria, you can use a single quote
  2295.                      "'".
  2296.  
  2297.               Note that there is no problem using commas inside a
  2298.               batch file; the problem arises when including commas in
  2299.               a command line argument to a batch file.
  2300.  
  2301.           13. Use of spaces in command line options - Generally spaces
  2302.               and semicolons are not allowed because they are
  2303.               interpreted as separators between the command-line
  2304.               options.  To enable spaces to be used, where legal, you
  2305.               can enclose either the entire command line option
  2306.               (including the slash/dash and the switch character) in
  2307.               double quotes or enclose only the part with spaces.  For
  2308.               example, use "/$Find this in a file" to find the string
  2309.               "Find this in a file".  Note that any of the following
  2310.  
  2311.           File Finder/Grouper          39                  (c) EnGamma
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.  
  2319.               alternatives would work:
  2320.  
  2321.               a.  "/$Find this in a file"
  2322.               b.  /$"Find this in a file"
  2323.               c.  /$Find" this in a file"
  2324.               d.  /$Find" this in a "file
  2325.               e.  /$Find" "this" "in" "a" "file
  2326.  
  2327.           14. Option Switches - Options can be specified using either
  2328.               '/' or '-' as command line switch characters.
  2329.  
  2330.           15. Case Sensitivity - FFG is not currently case sensitive,
  2331.               but future releases may distinguish letter case as new
  2332.               features are added.  Use of lower case letters is
  2333.               recommended.
  2334.  
  2335.           16. Design - FFG is packed with different features and
  2336.               options, but it designed with the principle when using
  2337.               basic features, you should not be encumbered with the
  2338.               complexities of advanced features.  In fact, even
  2339.               internal design follows this approach for performance.
  2340.               For example, if you specify a simple file specification
  2341.               that DOS can handle (e.g., *.BAT), FFG lets DOS handle
  2342.               it, which results in a quicker search.
  2343.  
  2344.           17. FFG was developed using Borland C++ 3.1.
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.           File Finder/Grouper          40                  (c) EnGamma
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.                                System Requirements
  2379.  
  2380.           Operating System/Environment
  2381.  
  2382.           FFG requires DOS version 3.1 or later.  FFG will also run
  2383.           under Microsoft Windows in a DOS window.
  2384.  
  2385.           Video
  2386.  
  2387.           Although not required, if the system has EGA or VGA video,
  2388.           FFG will be able to display more lines of information on the
  2389.           screen at once using the /v (Video) option.
  2390.  
  2391.           System Memory
  2392.  
  2393.           FFG uses Borland's VROOMM (Virtual Runtime Object-Oriented
  2394.           Memory Management) feature to provide many features while
  2395.           making most efficient use of system memory.  Expanded memory
  2396.           (EMS) and/or extended memory (XMS) is used, if detected, to
  2397.           improve performance.  During execution of commands with the
  2398.           /e option, FFG will swap itself (all but about 6 KB) to EMS,
  2399.           XMS, or disk to maximize the amount of memory available to
  2400.           the program being executed.
  2401.  
  2402.           With low system memory FFG will still operate, but
  2403.           performance may be degraded and some infrequent operations
  2404.           may not be possible.  If there is low conventional memory,
  2405.           but sufficient expanded memory, there may be no noticable
  2406.           performance degradation.  In any case, if low system memory
  2407.           is detected, FFG displays a warning message:
  2408.  
  2409.           WARNING! Low memory.  Program may operate slowly and/or terminate
  2410.             prematurely.
  2411.  
  2412.           FFG requires a minimum of about 135K of conventional system
  2413.           memory.  Performance and feature availability is maximized
  2414.           when there is greater than approximately 190K of
  2415.           conventional memory.  If during operation, FFG is unable to
  2416.           obtain sufficient memory to continue, it will terminate with
  2417.           the message:
  2418.  
  2419.               ERROR! Insufficient memory to continue.
  2420.  
  2421.           If there is insufficient memory for FFG to execute, one of
  2422.           the following error messages will appear depending on the
  2423.           available memory:
  2424.  
  2425.               Cannot Execute FFG.EXE
  2426.               Abnormal Program Termination
  2427.               ERROR! Insufficient memory.
  2428.                      130K of available conventional RAM required
  2429.  
  2430.             File Finder/Grouper          41                  (c) EnGamma
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.           File Finder/Grouper          42                  (c) EnGamma
  2482.  
  2483.